package behavior.memento;

/**
 * @author lzp
 * @Date:2023/3/1
 * @description: 文本编辑器
 */
public class TextEditor {

	/**
	 * 缓存当前编辑的内容
	 */
	private StringBuilder buffer = new StringBuilder();

	public void add(String text) {
		buffer.append(text);
	}

	public void add(char ch) {
		buffer.append(ch);
	}

	/**
	 * 从末尾删除一个字符
	 */
	public void delete() {
		if (buffer.length() > 0) {
			buffer.deleteCharAt(buffer.length() - 1);
		}
	}


	/*********************备忘录模式 补充当前状态的获取和设置，用于备份和恢复编辑状态 ******************************/
	/**
	 * 获取当前缓存的数据
	 *
	 * @return
	 */
	public String getState() {
		return buffer.toString();
	}

	/**
	 * 设置当前缓存的数据
	 *
	 * @param state
	 */
	public void setState(String state) {
		this.buffer.delete(0, this.buffer.length());
		this.buffer.append(state);
	}

}
